Crate core_affinity

source ·
Expand description

This crate manages CPU affinities.

Example

This example shows how to create a thread for each available processor and pin each thread to its corresponding processor.

extern crate core_affinity;

use std::thread;

// Retrieve the IDs of all active CPU cores.
let core_ids = core_affinity::get_core_ids().unwrap();

// Create a thread for each active CPU core.
let handles = core_ids.into_iter().map(|id| {
    thread::spawn(move || {
        // Pin this thread to a single CPU core.
        let res = core_affinity::set_for_current(id);
        if (res) {
            // Do more work after this.
        }
    })
}).collect::<Vec<_>>();

for handle in handles.into_iter() {
    handle.join().unwrap();
}

Structs

This represents a CPU core.

Functions

This function tries to retrieve information on all the “cores” on which the current thread is allowed to run.
This function tries to pin the current thread to the specified core.